<?php
/**
 * Ly - 系统入口
 *
 * 系统入口，所有文件需要通过该入口文件进行调用
 *
 * Copyright (c) 2013 YinHailin All rights reserved.
 * @Author: YinHailin
 * @Authorize: Boren Network
 * @Created by YinHailin at 2013-11-01
 */


if (version_compare(PHP_VERSION, '5.2.0', '<')) die('require PHP > 5.2.0 !');  //版本需求

/* 版本信息 */
define('LY_VERSION', '0.1.0');

/* 环境信息 */
define('IS_WIN', strstr(PHP_OS, 'WIN') ? true : false );  //是否windows系统判断
defined('ROOT_PATH') or define('ROOT_PATH', $_SERVER['DOCUMENT_ROOT'].'/');  //系统根目录
defined('LY_PATH') or define('LY_PATH', dirname(__FILE__).'/');  //系统框架目录

/* 项目信息 */
defined('APP_PATH') or define('APP_PATH', ROOT_PATH);  //项目目录
defined('APP_NAME') or define('APP_NAME', ucfirst(strtolower(basename(APP_PATH))));  //项目名称

/* 开发者信息 */
defined('APP_DEBUG') or define('APP_DEBUG', false);  //关闭系统调试模式
defined('BUILD_DIR_SECURE') or define('BUILD_DIR_SECURE', false);  //关闭创建目录安全文件
defined('DIR_SECURE_FILENAME') or define('DIR_SECURE_FILENAME', 'index.html');  //目录安全文件名
defined('DIR_SECURE_CONTENT') or define('DIR_SECURE_CONTENT', ' ');  //目录安全文件内容

/* 系统路径 */
defined('CORE_PATH') or define('CORE_PATH', LY_PATH.'Class/Core/');  //系统核心类库目录
defined('RUNTIME_PATH') or define('RUNTIME_PATH', ROOT_PATH.'Runtime/'.APP_NAME.'/');  //缓存文件目录
defined('CONF_PATH') or define('CONF_PATH', ROOT_PATH.'Conf/');  //系统配置目录
defined('EXTEND_PATH') or define('EXTEND_PATH', ROOT_PATH.'Extend/');  //系统扩展目录
defined('PLUGIN_PATH') or define('PLUGIN_PATH', ROOT_PATH.'Plugin/');  //系统插件目录
defined('LIB_PATH') or define('LIB_PATH', APP_PATH.'Lib/');  //项目类库目录
defined('TPL_PATH') or define('TPL_PATH', APP_PATH.'Tpl/');  //项目模板目录

/* 加载运行时所需文件 */
function load_runtime_file() {
  //加载系统基础函数库
  require LY_PATH.'Func/Function.func.php';
  require LY_PATH.'Func/Letter.func.php';
  require LY_PATH.'Func/System.func.php';
  require LY_PATH.'Func/Plugin.func.php';
  //加载系统核心类
  require CORE_PATH.'LyCore.class.php';

  //检查项目目录结构,不存在则创建
  if (!is_dir(LIB_PATH)) {
    //创建项目目录结构
    build_app_dir();
  } elseif (!is_dir(RUNTIME_PATH)) {
    //检查缓存目录
    check_runtime();
  }
  //检查系统目录结构,不存在则创建
  build_sys_dir();
}

/* 自动session */
session_start();
/* 加载运行时文件 */
load_runtime_file();
/* 系统初始化 */
LyCore::Init();